<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <button id="btn">按钮</button>
  <p></p>
  <script>
   let obj = {a: 10}
  //  Object.defineProperty() 这个方法可以做数据劫持
  // Object.defineProperty(对象, '属性', {对操作属性的配置})
  Object.defineProperty(obj, 'b', {
    // value: 100, // value值默认不能修改, 默认不可以被遍历
    // writable: true, // 设置这个属性值可以被修改
    // enumerable: true // 设置这个属性可以被遍历
    get(){
      return 100 // return的值是b的值, value和get函数只能出现一个
    },
    // 只要b的值被修改后就会触发set
    set(val){
      console.log(val);
      console.log('修改了');
    }
  })
  console.log(obj);
  obj.b = 1111
  // obj.b = 999
  // console.log(obj);
  // for (const k in obj) {
  //  console.log(k);
  // }
  </script>
</body>
</html>